home *** CD-ROM | disk | FTP | other *** search
/ PC Professionell 2005 June / PCpro_2005_06.ISO / files / opensource / amc / amc_install.exe / {app} / Scripts / Update Fields (FR-US).ifs < prev    next >
Encoding:
Text File  |  2005-03-12  |  25.5 KB  |  659 lines

  1. (***************************************************
  2.  
  3. Ant Movie Catalog importation script
  4. www.antp.be/software/moviecatalog/
  5.  
  6. [Infos]
  7. Authors=ScorEpioN
  8. Title=Update Fields
  9. Description=Mise α jour massive de champs / Update fields
  10. Site=
  11. Language=EN,FR
  12. Version=13 du 07/03/2005
  13. Requires=3.5.0
  14. Comments=
  15. License=
  16. GetInfo=0
  17.  
  18. [Options]
  19. Casse Choisie=3|3|0=Tout en minuscule|1=Tout en majuscule|2=PremiΦre lettre en majuscule|3=PremiΦre lettre de chaque mot en majuscule
  20.  
  21. ***************************************************)
  22.  
  23.  
  24. program UpdateAllField;
  25.  
  26. var
  27.   Update, NewField, NewValue, Field, Abort, FirstExec : String;
  28.  
  29. //------------------------------------------------------------------------------
  30. // VERIFIER LA VERSION DU SCRIPT
  31. //------------------------------------------------------------------------------
  32.  
  33. procedure verifVersion();
  34. var
  35.    Line, NewVersion : String;
  36.    BeginPos, EndPos : Integer;
  37. begin
  38.   Line := GetPage('http://forum.antp.be/phpbb2/viewtopic.php?t=1453');
  39.   BeginPos := pos('TELECHARGER LE SCRIPT UPDATE ALL FIELDS v', Line);
  40.   delete(Line,1, BeginPos+40);
  41.   EndPos := pos('du', Line);
  42.   NewVersion := copy(Line, 1, EndPos - 2);
  43.   if (ShowConfirmation('La derniΦre version est la '+NewVersion+'. Cliquer sur ''''OUI'''' pour la tΘlΘcharger.') = True) then
  44.   begin
  45.     Launch('iexplore.exe','http://www.ifrance.com/ricoland/Update%20Fields%20(FR-US).ifs');
  46.   end else
  47.     exit;
  48. end;
  49.  
  50. //------------------------------------------------------------------------------
  51. // FONCTION DEMANDE CONFIRMATION
  52. //------------------------------------------------------------------------------
  53. function confirm(leMessage : String): Boolean;
  54. begin
  55.   if (FirstExec <> 'N') then
  56.   begin
  57.     if (ShowConfirmation(leMessage) = True) then
  58.     begin
  59.       result := True;
  60.     end else
  61.       result := False;
  62.   end else
  63.     result := True;
  64. end;
  65.  
  66. //------------------------------------------------------------------------------
  67. // MET UN CHAMPS A LA CASSE VOULUE
  68. //------------------------------------------------------------------------------
  69.  
  70. function casse(titre : String; option : Integer) : string;
  71. begin
  72.   if (option = 0) then
  73.   begin
  74.      titre := AnsiLowerCase(titre);
  75.   end else if (option = 1) then
  76.   begin
  77.      titre := AnsiUpperCase(titre);
  78.   end else if (option = 2) then
  79.   begin
  80.      titre := AnsiUpFirstLetter(titre);
  81.   end else if (option = 3) then
  82.   begin
  83.      titre := AnsiMixedCase(titre,' -');
  84.   end;
  85.   result := titre;
  86. end;
  87.  
  88. //------------------------------------------------------------------------------
  89. // FONCTION DE DUPLICATION DE FICHES
  90. //------------------------------------------------------------------------------
  91. procedure duplicateFields();
  92. begin
  93.   if (confirm('Vous allez dupliquer la fiche : '+GetField(fieldTranslatedTitle)+' ('+GetField(fieldOriginalTitle)+'). '+'Avez-vous bien penser α sΘlectionner les fiches cibles ?') = True) then
  94.   begin
  95.      if (FirstExec <> 'N') then
  96.      begin
  97.       SetStatic('Titretraduit',GetField(fieldTranslatedTitle));  // Titre traduit
  98.       SetStatic('Titreoriginal', GetField(fieldOriginalTitle));  // Titre original
  99.       SetStatic('Description', GetField(fieldDescription));      // Description
  100.       SetStatic('Media', GetField(fieldMedia));                  // Media
  101.       SetStatic('Typedemedia', GetField(fieldMediaType));        // Type de media
  102.       SetStatic('Source', GetField(fieldSource));                // Source
  103.       SetStatic('Ladate', GetField(fieldDate));                  // Date
  104.       SetStatic('Lemprunteur', GetField(fieldBorrower));         // Emprunteur
  105.       SetStatic('Note', GetField(fieldRating));                  // Note
  106.       SetStatic('Directeur', GetField(fieldDirector));           // Directeur
  107.       SetStatic('Producteur', GetField(fieldProducer));          // Producteur
  108.       SetStatic('Pays', GetField(fieldCountry));                 // Pays
  109.       SetStatic('Categorie', GetField(fieldCategory));           // Categorie
  110.       SetStatic('Annee', GetField(fieldYear));                   // Annee
  111.       SetStatic('Duree', GetField(fieldLength));                 // Duree
  112.       SetStatic('Acteurs', GetField(fieldActors));               // Acteurs
  113.       SetStatic('URL', GetField(fieldURL));                      // URL
  114.       SetStatic('Commentaires', GetField(fieldComments));        // Commentaires
  115.       SetStatic('Formatvideo', GetField(fieldVideoFormat));      // Format video
  116.       SetStatic('Formataudio', GetField(fieldAudioBitrate));     // Format audio
  117.       SetStatic('Bitratevideo', GetField(fieldVideoBitrate));    // Bitrate video
  118.       SetStatic('Bitrateaudio', GetField(fieldAudioBitrate));    // Bitrate audio
  119.       SetStatic('Resolution', GetField(fieldResolution));        // Resolution
  120.       SetStatic('Nbframe', GetField(fieldFrameRate));            // Nbframe
  121.       SetStatic('Langue', GetField(fieldLanguages));             // Langue
  122.       SetStatic('Soustitre', GetField(fieldSubtitles));          // Sous-titre
  123.       SetStatic('Taille', GetField(fieldSize));                  // Taille
  124.       SetStatic('Nbdisque', GetField(fieldDisks));               // Nb de disque
  125.      end else
  126.      begin
  127.       if CanSetField(fieldTranslatedTitle) then SetField(fieldTranslatedTitle, GetStatic('Titretraduit'));
  128.       if CanSetField(fieldOriginalTitle) then SetField(fieldOriginalTitle, GetStatic('Titreoriginal'));
  129.       if CanSetField(fieldDescription) then SetField(fieldDescription, GetStatic('Description'));
  130.       if CanSetField(fieldMedia) then SetField(fieldMedia, GetStatic('Media'));
  131.       if CanSetField(fieldMediaType) then SetField(fieldMediaType, GetStatic('Typedemedia'));
  132.       if CanSetField(fieldSource) then SetField(fieldSource, GetStatic('Source'));
  133.       if CanSetField(fieldDate) then SetField(fieldDate, GetStatic('Ladate'));
  134.       if CanSetField(fieldBorrower) then SetField(fieldBorrower, GetStatic('Lemprunteur'));
  135.       if CanSetField(fieldRating) then SetField(fieldRating, GetStatic('Note'));
  136.       if CanSetField(fieldDirector) then SetField(fieldDirector, GetStatic('Directeur'));
  137.       if CanSetField(fieldProducer) then SetField(fieldProducer, GetStatic('Producteur'));
  138.       if CanSetField(fieldCountry) then SetField(fieldCountry, GetStatic('Pays'));
  139.       if CanSetField(fieldCategory) then SetField(fieldCategory, GetStatic('Categorie'));
  140.       if CanSetField(fieldYear) then SetField(fieldYear, GetStatic('Annee'));
  141.       if CanSetField(fieldLength) then SetField(fieldLength, GetStatic('Duree'));
  142.       if CanSetField(fieldActors) then SetField(fieldActors, GetStatic('Acteurs'));
  143.       if CanSetField(fieldURL) then SetField(fieldURL, GetStatic('URL'));
  144.       if CanSetField(fieldComments) then SetField(fieldComments, GetStatic('Commentaires'));
  145.       if CanSetField(fieldVideoFormat) then SetField(fieldVideoFormat, GetStatic('Formatvideo'));
  146.       if CanSetField(fieldAudioBitrate) then SetField(fieldAudioBitrate, GetStatic('Formataudio'));
  147.       if CanSetField(fieldVideoBitrate) then SetField(fieldVideoBitrate, GetStatic('Bitratevideo'));
  148.       if CanSetField(fieldAudioBitrate) then SetField(fieldAudioBitrate, GetStatic('Bitrateaudio'));
  149.       if CanSetField(fieldResolution) then SetField(fieldResolution, GetStatic('Resolution'));
  150.       if CanSetField(fieldFrameRate) then SetField(fieldFrameRate, GetStatic('Nbframe'));
  151.       if CanSetField(fieldLanguages) then SetField(fieldLanguages, GetStatic('Langue'));
  152.       if CanSetField(fieldSubtitles) then SetField(fieldSubtitles, GetStatic('Soustitre'));
  153.       if CanSetField(fieldSize) then SetField(fieldSize, GetStatic('Taille'));
  154.       if CanSetField(fieldDisks) then SetField(fieldDisks, GetStatic('Nbdisque'));
  155.      end;
  156.   end else
  157.   begin
  158.     abort := 'O';
  159.   end;
  160. end;
  161.  
  162. //------------------------------------------------------------------------------
  163. // FONCTION METS LE CHAMPS COMMENTAIRE A LA SUITE DU CHAMPS DESCRIPTION
  164. //------------------------------------------------------------------------------
  165. procedure moveComments();
  166. begin
  167.   if (confirm('Vous allez dΘplacer le contenu du champs ''''Commentaire'''' vers le champs ''''Description''''.') = True) then
  168.   begin
  169.    if (CanSetField(fieldDescription) and CanSetField(fieldComments))  then
  170.    begin
  171.      SetField(fieldDescription,GetField(fieldDescription)+#13#10#13#10+GetField(fieldComments));
  172.      SetField(fieldComments,'');
  173.    end;
  174.   end else
  175.   begin
  176.     abort := 'O';
  177.   end;
  178. end;
  179.  
  180. //------------------------------------------------------------------------------
  181. // FONCTION MISE A JOUR DE LA CASSE DES TITRES ET DES NOMS
  182. //------------------------------------------------------------------------------
  183. procedure UpdateCasse();
  184. begin
  185.   if (confirm('Vous allez modifier la casse des champs avec des ''''Titres'''', des ''''Noms'''', les ''''Pays'''' et les ''''Genres'''', en fonction des champs modifiables et de l''option choisie.') = True) then
  186.   begin
  187. // Titre Original
  188.     if (CanSetField(fieldOriginalTitle)) then
  189.       SetField(fieldOriginalTitle, casse(GetField(fieldOriginalTitle),GetOption('Casse Choisie')));
  190. // Titre Traduit
  191.     if (CanSetField(fieldTranslatedTitle)) then
  192.       SetField(fieldTranslatedTitle, casse(GetField(fieldTranslatedTitle),GetOption('Casse Choisie')));
  193. // Nom du RΘalisateur
  194.     if (CanSetField(fieldDirector)) then
  195.       SetField(fieldDirector, casse(GetField(fieldDirector),GetOption('Casse Choisie')));
  196. //Nom du Producteur
  197.   if (CanSetField(fieldProducer)) then
  198.       SetField(fieldProducer, casse(GetField(fieldProducer),GetOption('Casse Choisie')));
  199. // Nom des Acteurs
  200.   if (CanSetField(fieldActors)) then
  201.       SetField(fieldActors, casse(GetField(fieldActors),GetOption('Casse Choisie')));
  202. // CatΘgorie
  203.   if (CanSetField(fieldCategory)) then
  204.       SetField(fieldCategory, casse(GetField(fieldCategory),GetOption('Casse Choisie')));
  205. // Pays
  206.   if (CanSetField(fieldCountry)) then
  207.       SetField(fieldCountry, casse(GetField(fieldCountry),GetOption('Casse Choisie')));
  208.   end else
  209.   begin
  210.     abort := 'O';
  211.   end;
  212. end;
  213.  
  214. //------------------------------------------------------------------------------
  215. // FONCTION COPIE TITRE SI VIDE
  216. //------------------------------------------------------------------------------
  217. procedure CopyTitle();
  218. begin
  219.   if (confirm('Vous allez dupliquer les titres (si vide), avec la casse choisie.') = True) then
  220.   begin
  221.     if GetField(fieldTranslatedTitle) = '' then
  222.     begin
  223.       if (CanSetField(fieldTranslatedTitle)) then
  224.         SetField(fieldTranslatedTitle, casse(GetField(fieldOriginalTitle),GetOption('Casse Choisie')));
  225.     end else
  226.     if GetField(fieldOriginalTitle) = '' then
  227.     begin
  228.       if (CanSetField(fieldOriginalTitle)) then
  229.         SetField(fieldOriginalTitle, casse(GetField(fieldTranslatedTitle),GetOption('Casse Choisie')));
  230.     end;
  231.   end else
  232.   begin
  233.     abort := 'O';
  234.   end;
  235. end;
  236.  
  237. //------------------------------------------------------------------------------
  238. // FONCTION SUPPRIME TITRE EN DOUBLE
  239. //------------------------------------------------------------------------------
  240. procedure DeleteTitle(Title : Integer);
  241. begin
  242.   if (confirm('Vous allez supprimer le titre en double') = True) then
  243.   begin
  244.     if AnsiUpperCase(GetField(fieldTranslatedTitle)) = AnsiUpperCase(GetField(fieldOriginalTitle)) then
  245.     begin
  246.       if (CanSetField(Title)) then
  247.         SetField(Title, '');
  248.     end;
  249.   end else
  250.   begin
  251.     abort := 'O';
  252.   end;
  253. end;
  254.  
  255. //------------------------------------------------------------------------------
  256. // FONCTION QUI AFFICHE LE CHOIX DU TITRE A SUPPRIMER
  257. //------------------------------------------------------------------------------
  258. procedure menuTitre();
  259. begin
  260.   if (FirstExec <> 'N') then
  261.   begin
  262.     PickTreeClear;
  263.     PickTreeAdd('Choisir le champs en double que vous souhaitez supprimer :', '');
  264.     PickTreeAdd('Titre original (Original Title)', IntToStr(fieldOriginalTitle));
  265.     PickTreeAdd('Titre Traduit (Translated Title)', IntToStr(fieldTranslatedTitle));
  266.     PickTreeExec(Field);
  267.   end;
  268.  
  269.   DeleteTitle(StrToInt(Field,0));
  270.  
  271. end;
  272.  
  273. //------------------------------------------------------------------------------
  274. // SUPPRIME UN MOT D'UNE CHAINE
  275. //------------------------------------------------------------------------------
  276.  
  277. procedure deleteWord(Champs : Integer);
  278. var
  279.   i,j, fin, finTitle : Integer;
  280.   title, temp, avant, apres : String;
  281. begin
  282.   if (confirm('Vous allez supprimer un mot d''un champs.') = True) then
  283.   begin
  284.     title := ' '+GetField(Champs)+' ';
  285.     if (NewField = '') then
  286.       Input('Delete a Word by ScorEpioN', 'Entrez le mot α supprimer :', NewField);
  287.     i:=pos(NewField,title);
  288.     if i <> 0 then
  289.     begin
  290.       fin := length(NewField);
  291.       avant := copy(title,i-1,1);
  292.       apres := copy(title,i+fin,1);
  293.       if (avant = ' ') and (apres = ' ') then
  294.       begin
  295.           finTitle := length(title);
  296.           title := copy(title,1,i-1)+copy(title,i+fin,finTitle-i-fin+1);
  297.           title := StringReplace(title, '  ', ' ');
  298.       end;
  299.     end;
  300.     SetField(Champs, Trim(title));
  301.   end else
  302.   begin
  303.     abort := 'O';
  304.   end;
  305. end;
  306.  
  307. //------------------------------------------------------------------------------
  308. // REMPLACE UN MOT DANS UN CHAMPS
  309. //------------------------------------------------------------------------------
  310.  
  311. procedure replaceWord(Champs : Integer);
  312. begin
  313.   if (confirm('Vous allez remplacer un mot dans un champs.') = True) then
  314.   begin
  315.     if (NewField = '') then
  316.       Input('Replace a Word by ScorEpioN', 'Entrez le mot α remplacer :', NewField);
  317.     if (NewValue = '') then
  318.       Input('Replace a Word by ScorEpioN', 'Entrez le nouveau mot :', NewValue);
  319.     SetField(Champs, StringReplace(GetField(Champs), NewField, NewValue));
  320.   end else
  321.   begin
  322.     abort := 'O';
  323.   end;
  324. end;
  325.  
  326. //------------------------------------------------------------------------------
  327. // REMPLACE LE CONTENU D'UN CHAMPS
  328. //------------------------------------------------------------------------------
  329.  
  330. procedure replaceField(Champs : Integer);
  331. begin
  332.   if (confirm('Vous allez remplacer le contenu d''un champs.') = True) then
  333.   begin
  334.     if (NewField = '') then
  335.       Input('Replace a Field by ScorEpioN', 'Entrez la nouvelle valeur du champs :', NewField);
  336.     SetField(Champs, NewField);
  337.   end else
  338.   begin
  339.     abort := 'O';
  340.   end;
  341. end;
  342.  
  343. //------------------------------------------------------------------------------
  344. // EFFACE LE CONTENU D'UN CHAMPS
  345. //------------------------------------------------------------------------------
  346.  
  347. procedure deleteField(Champs : Integer);
  348. begin
  349.   if (confirm('Vous allez effacer le contenu d''un champs.') = True) then
  350.   begin
  351.     SetField(Champs, '');
  352.   end else
  353.   begin
  354.     abort := 'O';
  355.   end;
  356. end;
  357.  
  358. //------------------------------------------------------------------------------
  359. // FONCTION QUI AFFICHE LA LISTE DES CHAMPS
  360. //------------------------------------------------------------------------------
  361. procedure menuChamps(Action : String);
  362. begin
  363.   if (FirstExec <> 'N') then
  364.   begin
  365.     PickTreeClear;
  366.     PickTreeAdd('Label du support (Update Media Type Field)', IntToStr(fieldMedia));
  367.     PickTreeAdd('Type de support (Update Media Type Field)', IntToStr(fieldMediaType));
  368.     PickTreeAdd('Origine (Source)', IntToStr(fieldSource));
  369.     PickTreeAdd('Emprunteur (Borrower)',IntToStr(fieldBorrower));
  370.     PickTreeAdd('Titre original (Original Title)', IntToStr(fieldOriginalTitle));
  371.     PickTreeAdd('Titre Traduit (Translated Title)', IntToStr(fieldTranslatedTitle));
  372.     PickTreeAdd('RΘalisateur (Director)',IntToStr(fieldDirector));
  373.     PickTreeAdd('Producteur (Producer)',IntToStr(fieldProducer));
  374.     PickTreeAdd('Pays (Country)',IntToStr(fieldCountry));
  375.     PickTreeAdd('Genre (Category)',IntToStr(fieldCategory));
  376.     PickTreeAdd('Acteurs (Actors)',IntToStr(fieldActors));
  377.     PickTreeAdd('Adresse Web (URL)',IntToStr(fieldURL));
  378.     PickTreeAdd('Description (Description)',IntToStr(fieldDescription));
  379.     PickTreeAdd('Commentaire (Comments)',IntToStr(fieldComments));
  380.     PickTreeAdd('Langue (Languages)',IntToStr(fieldLanguages));
  381.     PickTreeAdd('Sous-Titres (Subtitles)',IntToStr(fieldSubtitles));
  382.     PickTreeExec(Field);
  383.   end;
  384.  
  385.   if (Action = 'deleteW') then
  386.   begin
  387.     deleteWord(StrToInt(Field,0));
  388.   end else
  389.   if (Action = 'deleteF') then
  390.   begin
  391.     deleteField(StrToInt(Field,0));
  392.   end else
  393.   if (Action = 'replaceW') then
  394.   begin
  395.     replaceWord(StrToInt(Field,0));
  396.   end else
  397.   if (Action = 'replaceF') then
  398.   begin
  399.     replaceField(StrToInt(Field,0));
  400.   end;
  401.  
  402. end;
  403.  
  404. //------------------------------------------------------------------------------
  405. // TRADUIT LE CHAMPS DESCRIPTION
  406. //------------------------------------------------------------------------------
  407.  
  408. procedure translateSynopsis();
  409. var
  410.    Adresse, Parametre, Description, Resultat, Line : String;
  411.    BeginPos, EndPos : Integer;
  412. begin
  413.   if (confirm('Vous allez traduire le champs ''''Description''''.') = True) then
  414.   begin
  415.      if (NewField = '') then
  416.      begin
  417.       PickTreeClear;
  418.       PickTreeAdd('SΘlectionner les langues source et cible :', '');
  419.       PickTreeAdd('Du chinois simpl. vers l''anglais', 'zh_en');
  420.       PickTreeAdd('Du chinois trad. vers l''anglais', 'zt_en');
  421.       PickTreeAdd('De l''anglais vers le chinois simpl.', 'en_zh');
  422.       PickTreeAdd('De l''anglais vers le chinois trad.', 'en_zt');
  423.       PickTreeAdd('De l''anglais vers le hollandais', 'en_nl');
  424.       PickTreeAdd('De l''anglais vers le franτais', 'en_fr');
  425.       PickTreeAdd('De l''anglais vers l''allemand', 'en_de');
  426.       PickTreeAdd('De l''anglais vers le grec', 'en_el');
  427.       PickTreeAdd('De l''anglais vers l''italien', 'en_it');
  428.       PickTreeAdd('De l''anglais vers le japonais', 'en_ja');
  429.       PickTreeAdd('De l''anglais vers corΘen', 'en_ko');
  430.       PickTreeAdd('De l''anglais vers le portugais', 'en_pt');
  431.       PickTreeAdd('De l''anglais vers le russe', 'en_ru');
  432.       PickTreeAdd('De l''anglais vers l''espagnol', 'en_es');
  433.       PickTreeAdd('Du hollandais vers l''anglais', 'nl_en');
  434.       PickTreeAdd('Du hollandais vers le franτais', 'nl_fr');
  435.       PickTreeAdd('Du franτais vers le hollandais', 'fr_nl');
  436.       PickTreeAdd('Du franτais vers l''anglais', 'fr_en');
  437.       PickTreeAdd('Du franτais vers l''allemand', 'fr_de');
  438.       PickTreeAdd('Du franτais vers le grec', 'fr_el');
  439.       PickTreeAdd('Du franτais vers l''italien', 'fr_it');
  440.       PickTreeAdd('Du franτais vers le portugais', 'fr_pt');
  441.       PickTreeAdd('Du franτais vers l''espagnol', 'fr_es');
  442.       PickTreeAdd('De l''allemand vers l''anglais', 'de_en');
  443.       PickTreeAdd('De l''allemand vers le franτais', 'de_fr');
  444.       PickTreeAdd('Du grec vers l''anglais', 'el_en');
  445.       PickTreeAdd('Du grec vers le franτais', 'el_fr');
  446.       PickTreeAdd('De l''italien vers l''anglais', 'it_en');
  447.       PickTreeAdd('De l''italien vers le franτais', 'it_fr');
  448.       PickTreeAdd('Du japonais vers l''anglais', 'ja_en');
  449.       PickTreeAdd('Du corΘen vers l''anglais', 'ko_en');
  450.       PickTreeAdd('Du portugais vers l''anglais', 'pt_en');
  451.       PickTreeAdd('Du portugais vers le franτais', ' pt_fr');
  452.       PickTreeAdd('Du russe vers l''anglais', 'ru_en');
  453.       PickTreeAdd('De l''espagnol vers l''anglais', 'es_en');
  454.       PickTreeAdd('De l''espagnol vers le franτais', 'es_fr');
  455.       PickTreeExec(NewField);
  456.     end;
  457.     Description := GetField(fieldDescription);
  458.     Description := StringReplace(Description , #13#10, ' ');
  459.     Description := UTF8Encode(Description);
  460.     Adresse := URLEncode('http://babelfish.altavista.com/tr');
  461.     Parametre := 'do it =done&intl=1&tt=urltext&trtext='+Description+'&lp='+NewField;
  462.     Line := PostPage(Adresse,Parametre);
  463.     BeginPos := Pos('<td bgcolor=white class=s><div style=padding:10px;>', Line);
  464.     Delete(Line, 1, BeginPos+50);
  465.     EndPos := Pos('</div></td>', Line);
  466.     Resultat := Copy(Line, 1, EndPos-1 );
  467.     Resultat := StringReplace(Resultat, #13#10, ' ');
  468.     Resultat := UTF8Decode(Resultat);
  469.     HTMLDecode(Resultat);
  470.     HTMLRemoveTags(Resultat);
  471.     SetField(fieldDescription, Resultat);
  472.   end else
  473.   begin
  474.     abort := 'O';
  475.   end;    
  476. end;
  477.  
  478. //------------------------------------------------------------------------------
  479. // NETTOIE LE TITRE DU FICHIER POUR AVOIR LE TITRE DE FILM
  480. //------------------------------------------------------------------------------
  481.  
  482. function cleanTitle2(title, ext : String) : String;
  483. var
  484.   i : Integer;
  485. begin
  486.   i := pos(ext,title);
  487.   if i <> 0 then
  488.     title := copy(title,1,i-1);
  489.   result := title;
  490. end;
  491.  
  492. function cleanTitle(title : String) : String;
  493. var
  494.   i,j, fin : Integer;
  495.   temp : String;
  496.  
  497. begin
  498.   title := AnsiUpperCase(title);
  499.  
  500.   if title <> '' then
  501.   begin
  502. // Nettoie les tags fichiers, merci Atmosfear pour les tags
  503.   title := cleanTitle2(title, '.DVD');
  504.   title := cleanTitle2(title, '.DIVX');
  505.   title := cleanTitle2(title, '.FREN');
  506.   title := cleanTitle2(title, '.GERM');
  507.   title := cleanTitle2(title, '.INT');
  508.   title := cleanTitle2(title, '.LIM');
  509.   title := cleanTitle2(title, '.PROP');
  510.   title := cleanTitle2(title, '.REPACK');
  511.   title := cleanTitle2(title, '.PROP');
  512.   title := cleanTitle2(title, '.SUBB');
  513.   title := cleanTitle2(title, '.UNSUB');
  514.   title := cleanTitle2(title, '.WS');
  515.   title := cleanTitle2(title, '.XVID');
  516.   title := cleanTitle2(title, '.AC3');
  517.   title := cleanTitle2(title, '.UNRAT');
  518.   title := cleanTitle2(title, '.AVI');
  519.   title := cleanTitle2(title, '.OGM');
  520.   title := cleanTitle2(title, '.MKV');
  521.   title := cleanTitle2(title, '.WMV');
  522.   title := cleanTitle2(title, '.MPG');
  523.   title := cleanTitle2(title, '.MPEG');
  524.   title := StringReplace(title, '.', ' ');
  525.   title := StringReplace(title, ',', ' ');
  526.   title := StringReplace(title, ':', '');
  527.   title := StringReplace(title, '-', '');
  528.   title := StringReplace(title, '  ', ' ');
  529.  
  530.    i := 0;
  531. // Nettoie les tags de team
  532.    if (pos('(',title) <> 0) then
  533.    begin
  534.      i := pos('(',title);
  535.      temp := copy(title,0,i-1);
  536.      j := pos(')',title);
  537.      fin := Length(title);
  538.      title := temp + copy(title,j+1,fin);
  539.    end;
  540.  
  541.    if (pos('[',title) <> 0) then
  542.    begin
  543.      i := pos('[',title);
  544.      temp := copy(title,1,i-1);
  545.      j := pos(']',title);
  546.      fin := Length(title);
  547.      title := temp + copy(title,j+1,fin);
  548.    end;
  549.   end;
  550.   result := title;
  551. end;
  552.  
  553. //------------------------------------------------------------------------------
  554. // FONCTION QUI AFFICHE LE MENU ET RETOURNE L'ACTION CHOISIE
  555. //------------------------------------------------------------------------------
  556. function menu() : String;
  557. begin
  558.     PickTreeClear;
  559.     PickTreeAdd('Dupliquer le contenu d''une fiche (Duplicate card)', 'Duplicate');
  560.     PickTreeAdd('DΘplace les commentaires dans la description (Move Comments -> Description)', 'Move');
  561.     PickTreeAdd('Change la casse en fonction de l''option choisie (Change letter format with option)', 'Casse');
  562.     PickTreeAdd('Supprimer des titres les tags (Remove title tags)', 'Tags');
  563.     PickTreeAdd('Copie titre si un titre vide (Copy Title If Empty Title)', 'Copier');
  564.     PickTreeAdd('Supprimer titre en double (Delete Double Title)', 'DeleteDouble');
  565.     PickTreeAdd('Supprimer le contenu d''un champs (Delete a field)', 'deleteF');
  566.     PickTreeAdd('Remplacer le contenu d''un champs (Replace a field)', 'replaceF');
  567.     PickTreeAdd('Supprimer un mot dans un champs (Delete a word)', 'deleteW');
  568.     PickTreeAdd('Remplacer un mot dans un champs (Replace a word)', 'replaceW');
  569.     PickTreeAdd('Traduire la description avec Altavista (Translate Synopsis with Altavista)', 'Translate');
  570.     PickTreeAdd(' ', '');
  571.     PickTreeAdd('Verifier si vous avez la derniΦre version (New version)', 'version');
  572.     PickTreeAdd('Pour me contacter', 'contact');
  573.  
  574.     PickTreeExec(Update);
  575.     result := Update;
  576. end;
  577.  
  578. //------------------------------------------------------------------------------
  579. // PROCEDURE POUR EXECUTER LA TACHE CHOISIE
  580. //------------------------------------------------------------------------------
  581. procedure executeTask();
  582. begin
  583.    if (Update = 'version') then
  584.    begin
  585.      verifVersion();
  586.    end else
  587.    if (Update = 'contact') then
  588.    begin
  589.      Launch('iexplore.exe','http://forum.antp.be/phpbb2/viewtopic.php?t=1453');
  590.    end else
  591.    if (Update = 'Move') then
  592.    begin
  593.      moveComments();
  594.    end else
  595.    if (Update = 'Tags') then
  596.    begin
  597.      SetField(fieldTranslatedTitle, casse(cleanTitle(GetField(fieldTranslatedTitle)),GetOption('Casse Choisie')));
  598.      SetField(fieldOriginalTitle, casse(cleanTitle(GetField(fieldOriginalTitle)),GetOption('Casse Choisie')));
  599.    end else
  600.    if (Update = 'Casse') then
  601.    begin
  602.      UpdateCasse();
  603.    end else
  604.    if (Update = 'DeleteDouble') then
  605.    begin
  606.      menuTitre();
  607.    end else
  608.    if (Update = 'Copier') then
  609.    begin
  610.      CopyTitle();
  611.    end else
  612.    if (Update = 'deleteW') then
  613.    begin
  614.      menuChamps('deleteW');
  615.    end else
  616.    if (Update = 'deleteF') then
  617.    begin
  618.      menuChamps('deleteF');
  619.    end else
  620.    if (Update = 'replaceW') then
  621.    begin
  622.      menuChamps('replaceW');
  623.    end else
  624.    if (Update = 'replaceF') then
  625.    begin
  626.      menuChamps('replaceF');
  627.    end else
  628.    if (Update = 'Translate') then
  629.    begin
  630.      translateSynopsis();
  631.    end else
  632.    if (Update = 'Duplicate') then
  633.    begin
  634.      duplicateFields();
  635.    end;
  636. end;
  637.  
  638. //------------------------------------------------------------------------------
  639. // PROGRAMME PRINCIPAL
  640. //------------------------------------------------------------------------------
  641.  
  642. begin
  643.   if CheckVersion(3,5,0) then
  644.   begin
  645.     if (Abort <> 'O') then
  646.     begin
  647.       if (Update = '') then
  648.         Update := menu();
  649.       executeTask();
  650.       FirstExec := 'N';
  651.     end else
  652.     begin
  653.       exit;
  654.     end;
  655.   end else
  656.     ShowMessage('Ce script requiert une version plus rΘcente de Ant Movie Catalog (au moins la version 3.5.0)');
  657.     exit;
  658. end.
  659.